\newpage
\paragraph{Extraction des données}
~\\

Dans le but de pouvoir accéder plus facilement et rapidement aux informations, dans chaque dossier de la base de donnée locale, un fichier contenant les séquences nucléotidiques des fichiers genbanks correspondant (Partie commençant par le mot-clé ORIGIN) est présent. Ces séquences sont dans un fichier au format fasta (figure \ref{fasta}) qui est bien plus lisible que le format genbank. 

\begin{figure}[H]
\begin{center}
\includegraphics[scale=0.7]{../imports/format_fasta.jpg}
\caption[Foramt fasta]{\label{fasta} Format fasta: La première ligne commence par le caractère '>' suivi d'une description de la séquence (nom, identifiant, caractéristique...). Sur la ligne suivante on trouve la séquence d'ADN (un mot sur \{A,C,G,T\}}
\end{center}
\end{figure}
~\\

On a aussi extrait les protéines et leurs séquences codantes pour chaque dossier. Les protéines dans le genbank sont identifiables grâce au mot "/translation=", suit ensuite directement la protéine entre guillemets. Juste avant cette partie se trouve le nom de la protéine et juste après l'information donnant la sous-séquence d'ADN codant pour cette protéine.\\

Celle-ci se présente dans le cas le plus simple sous la forme suivante : 
\begin{itemize}
  \item[\textopenbullet ]x...y : la séquence correspondante au gène codant pour la protéine se situe entre les positions x et y du génome.
\end{itemize}
~\\
Mais le plus souvent, ce sont des structures plus complexes (voir annexe \ref{ex_Cas_Complexe} "Cas complexes") qu'il faut prendre soin de {\it parser}.
\\

De plus certaines protéines particulières sont intéressantes comme marqueur génétique pour la biologie évolutive étant donné qu'elles sont présentes à une position précise dans le génome de certaines espèces. On souhaite donc avoir les 
séquences nucléotidiques de celles-ci dans des fichiers spécifiques. Cependant le nom de ces protéines ne sont pas standardisé, 
c'est pourquoi on utilisera un fichier de configuration avec la syntaxe "nom1:alias\_1,...,alias\_n". Les fichiers où se trouve ces séquences nucléotidiques auront
pour nom nt\_nom1.fasta et aa\_nom1.fasta respectivement pour l'ADN (nt = nucléotides ) 
et les protéines (aa = acide aminé) 

\begin{figure}[H]
\begin{center}
$cox1: CO1,COI,COXI,COXI,COX1,CYTOCHROME OXIDASE SUBUNIT I,$\\
$cox2: CO2,COII,COXII,COX II,COX 2,CYTOCHROME OXIDASE SUBUNIT II$\\
\caption{\label{listconf}Exemple de fichier alias}
\end{center}

\end{figure}
~\\

Suivant l'exemple de la figure \ref{listconf}, on aura donc pour chaque dossier un fichier nt\_cox1.fasta et nt\_cox2.fasta contenant les séquences nucléotidiques 
codant respectivement pour les protéines cox1 et cox2 et on aura également un fichier aa\_cox1.fasta et aa\_cox2.fasta contenant les protéines traduites.
\\

La méthode principale pour extraire ces données est identique à celle utilisée précédemment avec une table de hachage avec comme clé le numéro d'accession et comme contenu la donnée à récupérer (figure \ref{genbank}). Ainsi on a le fichier d'accession genbank (figure \ref{resultatS}) pour récupérer les données (gènes, protéines, génome complet). Il suffit donc de {\it parser} les entrées genbank dans le fichier complet récupéré lors de la première requête (figure \ref{requete}) et extraire les données correspondantes aux accessions propres à chaque sous répertoire (figure \ref{extract}).

\begin{figure}[H]
\begin{lstlisting}[numbers=left] 
      // Pour chaque dossier
      foreach $chemin @tableauCheminTaxons
      {
        //creation du fichier genbank
        open(fichier_sortie,'>',$chemin/genbank.gb);
        //Pour chaque accession du dossier courant
        foreach $accession @listeAccession[$chemin];
        {
          // pour chaque proteine de cette accession
          foreach $prot @listeProteine[$accession]
          {
            $nom_prot = $prot->name;
            
            // si cette proteine est definit dans le fichier de configuration
            // si on souhaite donc la recuperer
            if ($fichier_conf->contains($nom_prot))
            {
              $nom_standard = $nom_prot->standard_nom;
              // ouverture en ajout
              open(fichier_proteine,'>>',$chemin/$nom_standard);
              print fichier_proteine $prot
            }
          }
         close(...); 
        }     
      }                                              
\end{lstlisting}
\caption{\label{extract} Code Perl simplifié pour l'extraction des gènes et protéines définis dans le fichier de configuration}
\end{figure}
~\\

Pour chaque sous répertoire (figure \ref{resultatS}), on obtient la liste des gènes et protéines annotée dans le genbank.
\\
A présent toutes les données utiles ont été extraites et classées, on peut commencer le travail pour effectuer l'apprentissage automatique.
